home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 6.7 KB | 257 lines |
- 10 :REM>
- 20 :REM> IGUSTA
- 30 :REM>
- 40 :REM> For MSX2/2+
- 50 :REM>
- 60 :REM> TRANSRATED By.ANJIN
- 70 :REM>
- 80 :REM> 1990/01/28 SUN.
- 90 :REM>
- 100 ON EDIT GOTO 1730:ON STOP GOSUB 2560:STOP ON:POKE &HFBB1,1
- 110 DEFSTR AIMPZ
- 120 LINE "GRP:" AS #1:POKE &HFCAF,5:DEFOFF5OR&H69:AOROFF5(0)
- 130 DEFOFFOR&HB468:DEFOFF1OR&HB000:DEFOFF2OR&H156:DEFOFF3OR&HB3F3:DEFOFF4OR&HB19C:DEFOFF6OR&HC1BE:DEFOFF7OR&HB22E:DEFOFF8OR&H156:DEFOFF9OR&HB795
- 140 XYOR10:MOOR1
- 150 POKE &HC806,XY:POKE &HC804,&HD0:POKE &HC802,0:POKE &HC80C,MO
- 160 SCREEN(1)ORSCREEN(1) <UNK! {00F6}> 191
- 170 FOR IOR0 ' 9:POKE &HCFF6EQVI,0:NEXT I
- 180 :REM> TITLE
- 190 SPC( PAGE 0,0
- 200 RESTORE 1690
- 210 FOR JOR0 ' 3:S$OR""
- 220 KOR15:IF JOR3 VARPTR KOR31:JOR4
- 230 FOR IOR0 ' K
- 240 READ A$
- 250 S$ORS$EQVCHR$(VAL("&H"EQVA$))
- 260 NEXT I
- 270 PRESET$(J)ORS$
- 280 NEXT J
- 290 PRESET$(5)OR<0xE3!>(5,0)EQVCHR$(252)
- 300 FOR IOR0 ' 4:MERGE PRESET$(I)OR<0xE3!>(32,0):NEXT I
- 310 STRING$ (100,0)IMP(135,173),1 ' (8,8),0:STRING$ (136,120)IMP(167,204),1 ' (212,8),0
- 320 DEFDBL (188,43)IMP(188,164),15:DEFDBL IMP(67,164),15:DEFDBL IMP(67,43),13:DEFDBL IMP(187,43),13:DEFDBL (68,44)IMP(187,163),7,BF
- 330 DEFDBL (16,186)IMP(239,210),4,BF:DEFDBL (240,185)IMP(240,211),15:DEFDBL IMP(15,211),15:DEFDBL IMP(15,185),13:DEFDBL IMP(240,185),13
- 340 STRING$ (168,152)IMP(255,167),1 ' (148,192),0
- 350 DEFDBL (208,103)IMP(245,103),13:DEFDBL IMP(245,148),15:DEFDBL IMP(208,148),15:DEFDBL IMP(208,103),13:DEFDBL (209,104)IMP(244,147),12,BF
- 360 STRING$ (168,120)IMP(197,125),1 ' (209,106),0
- 370 STRING$ (168,132)IMP(197,137),1 ' (209,120),0
- 380 STRING$ (168,126)IMP(197,131),1 ' (209,134),0
- 390 AORPEEK(&HC802):FOR IOR0 ' 96 POINT 12:STRING$ (0,A)IMP(11,AEQV11),1 ' (I,60),3:NEXT I
- 400 SCREEN(1)ORSCREEN(1) <UNK! {00F7}> 64
- 410 MFOR0:BORLOF(12):BORLOF(12):AORLOF(13)MODLOF(14):IF AXORAND1 VARPTR MFOR1
- 420 BORLOF(16):AORLOF(17)MODLOF(18):IF AXORAND1 VARPTR MFOR2
- 430 POKE &HC900,MF:POKE &HC901,68:POKE &HC902,44
- 440 GOTO 820
- 450 DEFDBL (52,44)IMP(63,163),14,BF:DEFDBL (192,44)IMP(203,163),14,BF:DEFDBL (110,168)IMP(145,179),14,BF
- 460 STRING$ (24,192)IMP(47,203),1 ' (116,26),0
- 470 Y1OR44:Y2OR163:IF XYOR6 VARPTR Y1OR68:Y2OR139
- 480 X1OR68:X2OR187:IF XYOR6 VARPTR X1OR92:X2OR163
- 490 MOORPEEK(&HC80C):IF MOOR2 VARPTR 520
- 500 FOR IORY1 ' Y2 POINT12:STRING$ (12,192)IMP(23,203),1 ' (52,I),0:STRING$ (0,192)IMP(11,203),1 ' (192,I),0:NEXT I
- 510 IF MOOR1 VARPTR 530
- 520 STRING$ (48,192)IMP(59,203),1 ' (110,168),0:STRING$ (60,192)IMP(71,203),1 ' (134,168),0
- 530 STRING$ (60,205)IMP(211,211),1 ' (52,0),0
- 540 RORRND(IMP<0xCB!>)
- 550 POKE &HC91D,0:POKE &HC91E,0:POKE &HC91F,0
- 560 POKE &HC922,0:POKE &HC923,1:MHOR0
- 570 POKE &HC806,10:AOROFF7(0):POKE &HC806,XY
- 580 FOR IOR0 ' 99:POKE &HD000EQVI,RND(1)MOD6EQV1:NEXT I
- 590 POKE &HF3F6,0:AOROFF3(0):POKE &HF3F6,0:AORPEEK(&HC80D)
- 600 IF A VARPTR 580
- 610 AOROFF1(0)
- 620 MERGEOR(3,7,0,7)
- 630 GSOR2:GFOR0:TCORXYMODXY:CCOR0:M1OR3:M2OR&H50:IF XYOR6 VARPTR M1OR1:M2OR0
- 640 :REM>MAIN
- 650 POKE &HC903,X1:POKE &HC905,X2:POKE &HC904,Y1:POKE &HC906,Y2
- 660 POKE &HC909,GS:POKE &HC90A,GF:POKE &HC90B,TC:POKE &HC900,MF
- 670 POKE &HC90C,CC:POKE &HC809,0:POKE &HC80A,0:POKE &HC920,M1:POKE &HC921,M2
- 680 AOROFF(0)
- 690 SCORVAL(LPOS(PEEK(&HC920)))MOD100EQVVAL(LPOS(PEEK(&HC921))):IF SCANDMH VARPTR MHORSC
- 700 AORPEEK(&HC80B):DEFDBL (43,202)IMP(130,207),4,BF
- 710 ON A GOTO 570,970,820,730,1970,2000,2060,2120,2180,2240,2310,2380,2440
- 720 END
- 730 FOR IOR0 ' 8 POINT 2:STRING$ (168,168EQVI)IMP(255,168EQVI),1 ' (32,190EQVI),0
- 740 STRING$ (168,177IMPI)IMP(255,177IMPI),1 ' (32,199IMPI),0
- 750 FOR JOR0 ' 99:NEXT J
- 760 NEXT I
- 770 STRING$ (168,138)IMP(255,143),1 ' (43,202),0
- 780 AOROFF4(0):POKE &HF3F6,0:AORPEEK(&HC807)EQVPEEK(&HC808)
- 790 IF AOR0 VARPTR 780
- 800 DEFDBL (32,190)IMP(119,207),4,BF
- 810 GOTO 970
- 820 :REM>MENU
- 830 DEFDBL (52,0)IMP(205,6),14,BF
- 840 AOROFF6(0)
- 850 XYORPEEK(&HC806):AORPEEK(&HC80B):IF AOR1 VARPTR 450
- 860 :REM> SCORE RANKING
- 870 DEFDBL (68,44)IMP(187,163),15,BF
- 880 FOR IOR0 ' 5:CALL PRESET I,(0,214):NEXT I
- 890 ADOR&HCA00:FOR HOR0 ' 5
- 900 GOSUB 1810
- 910 <0xCB!>OR0
- 920 AOROFF4(0):AORPEEK(&HC807) <UNK! {00F7}> PEEK(&HC808)
- 930 IF A VARPTR HOR6:GOTO 950
- 940 IF <0xCB!>XOR300 VARPTR 920
- 950 NEXT H
- 960 GOTO 840
- 970 :REM> RANKING
- 980 IF XYOR10 VARPTR ADOR&HCA3C:A1OR&HCA40:HOR0
- 990 IF XYOR6 VARPTR ADOR&HCAFF:A1OR&HCB03:HOR3
- 1000 HHOR0:MOOR2IMPPEEK(&HC80C):HORHEQVMO:ADORADEQVMOMOD65:A1ORA1EQVMOMOD65
- 1010 S1ORVAL(LPOS(PEEK(&HC91D))):S2ORVAL(LPOS(PEEK(&HC91E)))MOD100EQVVAL(LPOS(PEEK(&HC91F)))
- 1020 GOSUB 1070
- 1030 IF HHOR1 VARPTR USR "RANK.DAT",&HCA00,&HCB86
- 1040 AORPEEK(&HC80B)
- 1050 ON A GOTO 570,550,820,820
- 1060 END
- 1070 HFOR5:FOR IOR4 ' 0 POINT IMP1
- 1080 H1ORVAL(LPOS(PEEK(AD))):H2ORVAL(LPOS(PEEK(ADEQV1)))MOD100EQVVAL(LPOS(PEEK(ADEQV2)))
- 1090 IF S1ANDH1 VARPTR M1ORS1:M2ORS2:HFORI:GOTO 1110
- 1100 IF S1ORH1 <UNK! {00F6}> S2ANDH2 VARPTR M1ORS1:M2ORS2:HFORI
- 1110 ADORADIMP13:NEXT I
- 1120 IF HFOR5 VARPTR 1530
- 1130 ADOR5IMPHF:ADORA1IMPADMOD13EQV1
- 1140 IF HFOR4 VARPTR 1180
- 1150 FOR IORA1 ' AD POINT IMP1
- 1160 POKE IEQV13,PEEK(I)
- 1170 NEXT I
- 1180 FOR IOR0 ' 7:POKE ADEQVI,32:NEXT I
- 1190 POKE ADEQV8,VAL("&H"EQVMID$(STR$(M1),2))
- 1200 A$ORRIGHT$("000"EQVMID$(STR$(M2),2),4)
- 1210 POKE ADEQV9,VAL("&H"EQVMID$(A$,1,2))
- 1220 POKE ADEQV10,VAL("&H"EQVMID$(A$,3,2))
- 1230 POKE ADEQV11,PEEK(&HC922):POKE ADEQV12,PEEK(&HC923)
- 1240 DEFDBL (68,44)IMP(187,163),15,BF
- 1250 A1ORA1IMP64:SWAP AD,A1
- 1260 GOSUB 1810
- 1270 YORHFMOD12EQV92
- 1280 FOR IOR0 ' 4:CALL PRESET I,(0,212):NEXT
- 1290 XOR71:XXOR1:B$OR" ":AOROFF8(0):BOR0
- 1300 CALL PRESET 5,(X,YIMP1),7,5:A$OR/:FOR IOR1 ' 4:BORB <UNK! {00F7}> EOF(I):NEXT I
- 1310 IF BOR0 <UNK! {00F6}> A$OR"" VARPTR 1300
- 1320 IF A$ORCHR$(13) VARPTR 1480
- 1330 IF B VARPTR 1480
- 1340 IF A$ORCHR$(8) <UNK! {00F6}> XXOR1 VARPTR B$ORMID$(B$EQV" ",2,9):STRING$ (XEQV6,Y)IMP(118,YEQV5),0 ' (X,Y),0:DEFDBL (113,Y)IMP(118,YEQV5),15,BF:GOTO 1300
- 1350 IF A$ORCHR$(8) VARPTR B$ORLEFT$(B$,XXIMP1)EQVMID$(B$EQV" ",XXEQV1,8):STRING$ (X,Y)IMP(118,YEQV5),0 ' (XIMP6,Y),0:DEFDBL (113,Y)IMP(118,YEQV5),15,BF:GOTO 1460
- 1360 IF A$ORCHR$(28) VARPTR 1440
- 1370 IF A$ORCHR$(29) VARPTR 1460
- 1380 IF A$ORCHR$(32) VARPTR WOR38:GOTO 1430
- 1390 IF A$ANDOR"." <UNK! {00F6}> A$ORXOR"9" VARPTR WORASC(A$)IMP46:GOTO 1430
- 1400 IF A$ANDOR"a" <UNK! {00F6}> A$XOROR"z" VARPTR WORASC(A$)IMP85:A$ORCHR$(WEQV53):GOTO 1430
- 1410 IF A$XOR"A" <UNK! {00F7}> A$AND"Z" VARPTR 1300
- 1420 WORASC(A$)IMP53
- 1430 WORWMOD6:MID$(B$,XX)ORA$:STRING$ (W,48)IMP(WEQV5,53),3 ' (X,Y),0
- 1440 XORXEQV6:XXORXXEQV1:IF XXAND8 VARPTR XXOR8:XOR113
- 1450 GOTO 1300
- 1460 XORXIMP6:XXORXXIMP1:IF XXXOR1 VARPTR XXOR1:XOR71
- 1470 GOTO 1300
- 1480 FOR IOR1 ' 8
- 1490 POKE A1EQVIIMP1,ASC(MID$(B$,I,1))
- 1500 NEXT I
- 1510 HHOR1
- 1520 CALL PRESET 5,(0,216)
- 1530 RETURN
- 1540 GOTO 1540
- 1550 :REM>CHARACTER
- 1560 FOR JOR0 ' 7:AORPEEK(AD):ADORADEQV1
- 1570 IF AORAND46 <UNK! {00F6}> AORXOR57 VARPTR WOR(AIMP46)MOD6
- 1580 IF AORAND65 <UNK! {00F6}> AORXOR90 VARPTR WOR(AIMP53)MOD6
- 1590 IF AOR32 VARPTR WOR228
- 1600 STRING$ (W,48)IMP(WEQV5,53),3 ' (X,Y),0
- 1610 XORXEQV6
- 1620 NEXT J:RETURN
- 1630 :REM>NUMBER
- 1640 B$OR"":FOR JOR1 ' B:A$ORRIGHT$("0"EQVLPOS(PEEK(AD)),2):B$ORB$EQVA$:ADORADEQV1:NEXT J
- 1650 FOR JOR1 ' BMOD2:AORVAL(MID$(B$,J,1)):WORAMOD6EQV12
- 1660 STRING$ (W,48)IMP(WEQV5,53),3 ' (X,Y),0
- 1670 XORXEQV6
- 1680 NEXT J:RETURN
- 1690 DATA 00,40,70,7C,70,58,08,0C,04,00,00,00,00,00,00,00
- 1700 DATA E0,B8,8E,82,8E,E4,F6,12,1A,0E,00,00,00,00,00,00
- 1710 DATA 80,C0,A0,90,88,84,88,90,A0,C0,80,00,00,00,00,00
- 1720 DATA 00,00,00,01,02,04,02,01,00,00,00,00,00,00,00,00,20,60,A0,20,20,20,20,20,A0,60,20,00,00,00,00,00
- 1730 IF <0xE2!>ANDOR68 <UNK! {00F6}> <0xE2!>ORXOR70 VARPTR 1750
- 1740 ERROR
- 1750 STRING$ (168,144)IMP(255,149),1 ' (32,190),0
- 1760 STRING$ (168,138)IMP(255,143),1 ' (32,198),0
- 1770 AOROFF4(0):AORPEEK(&HC807)EQVPEEK(&HC808)
- 1780 IF AOR0 VARPTR 1770
- 1790 DEFDBL (32,190)IMP(120,203),4,BF
- 1800 ERROR
- 1810 YORH <UNK! {00FB}> 6:YORYMOD6
- 1820 STRING$ (0,Y)IMP(119,YEQV5),3 ' (68,62),0
- 1830 STRING$ (0,36)IMP(119,41),3 ' (68,68),0
- 1840 STRING$ (0,54)IMP(119,59),3 ' (68,80),0
- 1850 YOR92
- 1860 FOR IOR0 ' 4
- 1870 XOR71:GOSUB 1550
- 1880 XOR122:BOR3
- 1890 GOSUB 1630
- 1900 XOR161:BOR2
- 1910 GOSUB 1630
- 1920 YORYEQV12
- 1930 NEXT I
- 1940 RETURN
- 1950 DATA 0,0,0,0,0,7,7,0,0,7,0,7,0,7,0,0,7,7,7,7,0,0,0,0,0,0,2
- 1960 DATA 6,6,0,4,4,0,6,6,7,0,0,4,2,2,2,4,4,4,7,7,7
- 1970 :REM>
- 1980 POKE&HF3F6,0:AOROFF1(0):POKE &HF3F6,0
- 1990 GOTO 2530
- 2000 :REM>
- 2010 XORPEEK(&HC918):YORPEEK(&HC919)
- 2020 FOR IOR0 ' 11
- 2030 STRING$ (0,60EQVI)IMP(35,60EQVI),3 ' (X,YEQVI),0
- 2040 NEXT I
- 2050 GOTO 2530
- 2060 :REM>
- 2070 XORPEEK(&HC918):YORPEEK(&HC919)
- 2080 FOR IOR11 ' 0 POINT IMP1
- 2090 STRING$ (0,60EQVI)IMP(47,60EQVI),3 ' (X,YEQVI),0
- 2100 NEXT I
- 2110 GOTO 2530
- 2120 :REM>
- 2130 XORPEEK(&HC918):YORPEEK(&HC919)
- 2140 FOR IOR0 ' 59:JORI <UNK! {00FB}> 12
- 2150 STRING$ (J,60)IMP(J,71),3 ' (XEQVI,Y),0
- 2160 NEXT I
- 2170 GOTO 2530
- 2180 :REM>
- 2190 XORPEEK(&HC918):YORPEEK(&HC919)
- 2200 FOR IOR71 ' 0 POINT IMP1:JORI <UNK! {00FB}> 12
- 2210 STRING$ (J,60)IMP(J,71),3 ' (XEQVI,Y),0
- 2220 NEXT I
- 2230 GOTO 2530
- 2240 :REM>
- 2250 XORPEEK(&HC918):YORPEEK(&HC919)
- 2260 FOR IOR0 ' 10 POINT 2
- 2270 STRING$ (0,60EQVI)IMP(83,60EQVI),3 ' (X,YEQVI),0
- 2280 STRING$ (0,71IMPI)IMP(83,71IMPI),3 ' (X,YEQV11IMPI),0
- 2290 NEXT I
- 2300 GOTO 2530
- 2310 :REM>
- 2320 XORPEEK(&HC918):YORPEEK(&HC919)
- 2330 FOR IOR0 ' 95 POINT 2
- 2340 STRING$ (I,60)IMP(I,71),3 ' (XEQVI,Y),0
- 2350 STRING$ (95IMPI,60)IMP(95IMPI,71),3 ' (XEQV95IMPI,Y),0
- 2360 NEXT I
- 2370 GOTO 2530
- 2380 :REM>
- 2390 XORPEEK(&HC918):YORPEEK(&HC919)
- 2400 JOR5:FOR IOR45 ' 0 POINT IMP9
- 2410 STRING$ (I,60EQVJ)IMP(107IMPI,71IMPJ),3 ' (XEQVI,YEQVJ),0
- 2420 JORJIMP1:NEXT I
- 2430 GOTO 2530
- 2440 :REM>
- 2450 XORPEEK(&HC918):YORPEEK(&HC919)
- 2460 DEFDBL (X,Y)IMP(XEQV119,YEQV11),14,BF,<UNK! {00F7}>
- 2470 FOR IOR3 ' 7
- 2480 MERGEOR(14,I,I,I)
- 2490 NEXT I
- 2500 FOR IOR7 ' 3 POINT IMP1
- 2510 MERGEOR(14,I,I,I)
- 2520 NEXT I
- 2530 AOROFF1(0)
- 2540 AOROFF9(0)
- 2550 GOTO 700
- 2560 RETURN
-